import type { ExtractPropTypes, InjectionKey } from "vue";

export type RemoveReadonly<T> = {
  -readonly [key in keyof T]: T[key];
};
export type ExtractPublicPropTypes<T> = Partial<
  RemoveReadonly<ExtractPropTypes<T>>
>;
export const createInjectionKey = <T>(key: string): InjectionKey<T> =>
  Symbol(key);
